package com.linwen.javase.new8.forEach;

import org.junit.Test;

import java.util.ArrayList;

/**
 * foreach 循环遍历数组   只能查询不能操作
 * @author lin
 *
 */

public class For_Each {
	@Test
	public void test(){
		int[] array = new int[]{1,2,3,4,5};
		//普通for循环
		//可以实现数组元素赋值
		for(int i=0;i<array.length;i++) {
			array[i] = i;
		}
		for(int i=0;i<array.length;i++) {
			System.out.print(array[i]+"  ");
		}
		System.out.println();
	}

	@Test
	public void test1(){
		int[] array = new int[]{1,2,3,4,5};
		//jdk5，增强for循环，forEach语法
		//只能迭代遍历，底层实现是迭代器，将arr迭代的元素赋值给i，不会影响arr的值
		for(int i:array) {
			i = i-1;
		}
		for(int i=0;i<array.length;i++) {
			System.out.print(array[i]+"  ");
		}
	}

	@Test
	public void test2(){
		// 普通集合类型
		ArrayList<Integer> list = new ArrayList<>();
		list.add(1);list.add(2);list.add(3);list.add(4);
		for (Integer i: list) {
			System.out.println(++i);
		}
		// 原集合元素数据不会改变
		System.out.println(list);
		list.forEach(System.out::println);

	}

}
